package com.xiaoxin.yixinai.companyinfo;

import java.math.BigDecimal;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Transient;

import com.xiaoxin.yixinai._frame.base.BaseModel;

/**
 * 公司信息
 * @author asus
 *
 */
@Entity
@Table(name="tb_company_info")
public class CompanyInfo extends BaseModel {

	/**
	 * 主键
	 */
	@Id
	@Column(name="company_id")
	@GeneratedValue(strategy=GenerationType.IDENTITY)
	private Integer companyId;
	
	/**
	 * 公司名
	 */
	@Column(name="company_name")
	private String companyName;
	
	/**
	 * 简称
	 */
	@Column(name="short_name")
	private String shortName;
	
	/**
	 * 行业类型
	 */
	@Column(name="industry_id")
	private Integer industryId;
	
	/**
	 * 地址
	 */
	@Column(name="address")
	private String address;
	
	/**
	 * 省份编码
	 */
	@Column(name="province_code")
	private String provinceCode;
	
	/**
	 * 城市编码
	 */
	@Column(name="city_code")
	private String cityCode;
	
	/**
	 * 省份
	 */
	@Transient
	private String provinceName;
	
	/**
	 * 城市
	 */
	@Transient
	private String cityName;

	/**
	 * 管理员ID
	 */
	@Column(name="admin_id")
	private Integer adminId;
	
	/**
	 * 代理商ID
	 */
	@Column(name="agents_id")
	private Integer agentsId;
	
	/**
	 * 代理商姓名
	 */
	@Column(name="agents_name")
	private String agentsName;
	
	/**
	 * 运营中心id
	 */
	@Column(name="operation_center_id")
	private Integer operationCenterId;
	
	/**
	 * 销售ID
	 */
	@Column(name="sale_id")
	private Integer saleId;
	
	/**
	 * 销售姓名
	 */
	@Column(name="sale_name")
	private String saleName;
	
	/**
	 * 客户经理ID
	 */
	@Column(name="account_manager_id")
	private Integer accountManagerId;
	
	/**
	 * 客户经理
	 */
	@Column(name="account_manager_name")
	private String accountManagerName;
	
	/**
	 * 创建时间
	 */
	@Column(name="insert_time")
	private Date insertTime;
	
	/**
	 * 注销时间
	 */
	@Column(name="logoff_time")
	private Date logoffTime;
	
	/**
	 * 是否启用(0:不启用,1:启用)
	 */
	@Column(name="enable_status")
	private Integer enableStatus;
	
	/**
	 * 客户级别：（0：一般客户；1：重点客户；2：核心客户；默认一般客户）
	 */
	@Column(name="customer_level")
	private Integer customerLevel = 0;
	
	/**
     * 系统名称
     */
    @Column(name="sys_name")
    private String sysName;
    
    /**
	 * 网关服务器标识(tb_gateway_info.gw_name)
	 */
	//@Column(name="gw_tag")
	@Transient
	private String gwTag;
	
	/**
	 * 网关名(tb_gateway_info.name)
	 */
	//@Column(name="gw_name")
	@Transient
	private String gwName;
	
    /**
	 * 并发数
	 */
	@Transient
	private Integer concurrencyNum;
    
	/**
	 * AI 数
	 */
	@Transient
	private Integer robotNum;
	
	/**
	 * 企业管理员-用户ID
	 */
	@Transient
	private Integer manageUserId;
	
	/**
	 * 企业管理员-用户姓名
	 */
	@Transient
	private String userName;
	
	/**
	 * 企业管理员-登录名
	 */
	@Transient
	private String loginName;
	
	/**
	 * 联系电话
	 */
	@Transient
	private String phone;
	
	/**
	 * 打断  0 不打断 1打断
	 */
	@Column(name="interrupt")
	private Integer interrupt;
	
	/**
	 * 转坐席 0 不转坐席 1转坐席
	 */
	@Column(name="turn_reclined")
	private Integer turnReclined;
	
	/**
     * 任务录音批量下载（0或null:不可以,1:可以）
     */
    @Column(name="task_sound_download_enable")
    private Integer taskSoundDownloadEnable;
    
	/**
	 * 导入数量限制（默认20000条， 最大50000条。 非必填）
	 */
	@Column(name="import_num")
	private Integer importNum;
	
	/**
	 * 话术免审（0或null：未免审,1：免审）
	 */
	@Column(name="special_power")
	private Integer specialPower;
	
	/**
	 * 话术方言支持（0或null:未支持,1：支持）
	 */
	@Column(name="support_dialect")
	private Integer supportDialect;
	
	/**
	 * 通话状态权限控制(0 :没有权限; 1:有权限;默认0) 
	 */
	@Column(name="call_state_authority")
	private Integer callStateAuthority;
	
	/**
	 * 公司软交换(0:三汇,1:不分离,2:分离; 默认0)  分离 是指 振铃音是否分离
	 */
	@Column(name="new_softswitch")
	private Integer newSoftSwitch;
	
	/**
     * 是否支持大数据(0:不支持,1:支持) 
     */
	@Column(name="support_bigData")
	private Integer supportBigData;
	
	/**
	 * 是否隐藏号码(0:不隐藏,1:隐藏)
	 */
	@Column(name="hide_phone")
    private Integer hidePhone;
	
    /**
     * 累计充值金额
     */
    @Column(name = "accumulated_recharge")
    private BigDecimal accumulatedRecharge;
    
    /**
     * 累计消费金额
     */
    @Column(name = "accumulated_consumption")
    private BigDecimal accumulatedConsumption;
    
    /**
     * 余额
     */
    @Column(name = "balance")
    private BigDecimal balance;
    
    /**
     * 分销量
     */
    @Transient
    private Integer inviterCount;
    /**
     * 分红金额
     */
    @Transient
    private BigDecimal commissionTotal;
    
    /**
     * 打包下载哪些用户分类的录音(a,b,c,d,e,f)， 默认值 a,b
     */
    @Column(name="zip_level")
    private String zipLevel;
    
    /**
     * 权限控制
     * RE_RECALL：手动重呼
     * EXPORT_DIALOG:导出会话
     * NUMBER_FILTER:号码过滤
     * AUTO_CALL：自动重呼
     * TASK_WORK_TIME:任务工作时间
     * 
     * {"authorities":["RE_RECALL", "EXPORT_DIALOG", "NUMBER_FILTER", "AUTO_CALL", "TASK_WORK_TIME"]}
     */
    @Column(name="authority_control")
    private String authorityControl;
    
    /**
     * 最大员工数限制（包含管理员自己），最小1
     */
    @Column(name="employee_max_num")
    private Integer employeeMaxNum;
    
	
	public Integer getCompanyId() {
		return companyId;
	}

	public void setCompanyId(Integer companyId) {
		this.companyId = companyId;
	}

	public String getCompanyName() {
		return companyName;
	}

	public void setCompanyName(String companyName) {
		this.companyName = companyName;
	}

	public String getShortName() {
		return shortName;
	}

	public void setShortName(String shortName) {
		this.shortName = shortName;
	}

	public Integer getIndustryId() {
		return industryId;
	}

	public void setIndustryId(Integer industryId) {
		this.industryId = industryId;
	}

	public String getAddress() {
		return address;
	}

	public void setAddress(String address) {
		this.address = address;
	}

	public String getProvinceCode() {
		return provinceCode;
	}

	public void setProvinceCode(String provinceCode) {
		this.provinceCode = provinceCode;
	}

	public String getCityCode() {
		return cityCode;
	}

	public void setCityCode(String cityCode) {
		this.cityCode = cityCode;
	}

	public Integer getAdminId() {
		return adminId;
	}

	public void setAdminId(Integer adminId) {
		this.adminId = adminId;
	}

	public Integer getAgentsId() {
		return agentsId;
	}

	public void setAgentsId(Integer agentsId) {
		this.agentsId = agentsId;
	}
	
	public Integer getOperationCenterId() {
		return operationCenterId;
	}

	public void setOperationCenterId(Integer operationCenterId) {
		this.operationCenterId = operationCenterId;
	}

	public String getAgentsName() {
		return agentsName;
	}

	public void setAgentsName(String agentsName) {
		this.agentsName = agentsName;
	}

	public Integer getSaleId() {
		return saleId;
	}

	public void setSaleId(Integer saleId) {
		this.saleId = saleId;
	}

	public String getSaleName() {
		return saleName;
	}

	public void setSaleName(String saleName) {
		this.saleName = saleName;
	}

	public Integer getAccountManagerId() {
		return accountManagerId;
	}

	public void setAccountManagerId(Integer accountManagerId) {
		this.accountManagerId = accountManagerId;
	}

	public String getAccountManagerName() {
		return accountManagerName;
	}

	public void setAccountManagerName(String accountManagerName) {
		this.accountManagerName = accountManagerName;
	}

	public Date getInsertTime() {
		return insertTime;
	}

	public void setInsertTime(Date insertTime) {
		this.insertTime = insertTime;
	}

	public Date getLogoffTime() {
		return logoffTime;
	}

	public void setLogoffTime(Date logoffTime) {
		this.logoffTime = logoffTime;
	}

	public Integer getEnableStatus() {
		return enableStatus;
	}

	public void setEnableStatus(Integer enableStatus) {
		this.enableStatus = enableStatus;
	}

	public Integer getCustomerLevel() {
		return customerLevel;
	}

	public void setCustomerLevel(Integer customerLevel) {
		this.customerLevel = customerLevel;
	}

	public String getSysName() {
		return sysName;
	}

	public void setSysName(String sysName) {
		this.sysName = sysName;
	}

	public Integer getConcurrencyNum() {
		return concurrencyNum;
	}

	public void setConcurrencyNum(Integer concurrencyNum) {
		this.concurrencyNum = concurrencyNum;
	}

	public Integer getRobotNum() {
		return robotNum;
	}

	public void setRobotNum(Integer robotNum) {
		this.robotNum = robotNum;
	}

	public Integer getManageUserId() {
		return manageUserId;
	}

	public void setManageUserId(Integer manageUserId) {
		this.manageUserId = manageUserId;
	}

	public String getUserName() {
		return userName;
	}

	public void setUserName(String userName) {
		this.userName = userName;
	}

	public String getLoginName() {
		return loginName;
	}

	public void setLoginName(String loginName) {
		this.loginName = loginName;
	}

	public String getPhone() {
		return phone;
	}

	public void setPhone(String phone) {
		this.phone = phone;
	}

	public String getProvinceName() {
		return provinceName;
	}

	public void setProvinceName(String provinceName) {
		this.provinceName = provinceName;
	}

	public String getCityName() {
		return cityName;
	}

	public void setCityName(String cityName) {
		this.cityName = cityName;
	}

	public String getGwTag() {
		return gwTag;
	}

	public void setGwTag(String gwTag) {
		this.gwTag = gwTag;
	}

	public String getGwName() {
		return gwName;
	}

	public void setGwName(String gwName) {
		this.gwName = gwName;
	}

	public Integer getInterrupt() {
		return interrupt;
	}

	public void setInterrupt(Integer interrupt) {
		this.interrupt = interrupt;
	}

	public Integer getTurnReclined() {
		return turnReclined;
	}

	public void setTurnReclined(Integer turnReclined) {
		this.turnReclined = turnReclined;
	}

	public Integer getTaskSoundDownloadEnable() {
		return taskSoundDownloadEnable;
	}

	public void setTaskSoundDownloadEnable(Integer taskSoundDownloadEnable) {
		this.taskSoundDownloadEnable = taskSoundDownloadEnable;
	}

	public Integer getImportNum() {
		return importNum;
	}

	public void setImportNum(Integer importNum) {
		this.importNum = importNum;
	}

	public Integer getSpecialPower() {
		return specialPower;
	}

	public void setSpecialPower(Integer specialPower) {
		this.specialPower = specialPower;
	}

	public Integer getSupportDialect() {
		return supportDialect;
	}

	public void setSupportDialect(Integer supportDialect) {
		this.supportDialect = supportDialect;
	}

	public Integer getCallStateAuthority() {
		return callStateAuthority;
	}

	public void setCallStateAuthority(Integer callStateAuthority) {
		this.callStateAuthority = callStateAuthority;
	}

	public Integer getNewSoftSwitch() {
		return newSoftSwitch;
	}

	public void setNewSoftSwitch(Integer newSoftSwitch) {
		this.newSoftSwitch = newSoftSwitch;
	}

	public Integer getSupportBigData() {
		return supportBigData;
	}

	public void setSupportBigData(Integer supportBigData) {
		this.supportBigData = supportBigData;
	}

	public Integer getHidePhone() {
		return hidePhone;
	}

	public void setHidePhone(Integer hidePhone) {
		this.hidePhone = hidePhone;
	}

	public BigDecimal getAccumulatedRecharge() {
		return accumulatedRecharge;
	}

	public void setAccumulatedRecharge(BigDecimal accumulatedRecharge) {
		this.accumulatedRecharge = accumulatedRecharge;
	}

	public BigDecimal getAccumulatedConsumption() {
		return accumulatedConsumption;
	}

	public void setAccumulatedConsumption(BigDecimal accumulatedConsumption) {
		this.accumulatedConsumption = accumulatedConsumption;
	}

	public BigDecimal getBalance() {
		return balance;
	}

	public void setBalance(BigDecimal balance) {
		this.balance = balance;
	}

	public Integer getInviterCount() {
		return inviterCount;
	}

	public void setInviterCount(Integer inviterCount) {
		this.inviterCount = inviterCount;
	}

	public BigDecimal getCommissionTotal() {
		return commissionTotal;
	}

	public void setCommissionTotal(BigDecimal commissionTotal) {
		this.commissionTotal = commissionTotal;
	}

	public String getZipLevel() {
		return zipLevel;
	}

	public void setZipLevel(String zipLevel) {
		this.zipLevel = zipLevel;
	}

	public String getAuthorityControl() {
		return authorityControl;
	}

	public void setAuthorityControl(String authorityControl) {
		this.authorityControl = authorityControl;
	}

	public Integer getEmployeeMaxNum() {
		return employeeMaxNum;
	}

	public void setEmployeeMaxNum(Integer employeeMaxNum) {
		this.employeeMaxNum = employeeMaxNum;
	}
	
}
